Onvu

Motivation

As more and more software companies migrate to a permanent work-from-home arrangement, programmers find themselves increasingly disengaged from needed resources, conversations, and collaborative workflows, leading to frustration and burnout. Targeting software engineers working remotely, Onvu automatically analyzes code content, monitors progress, and provides relevant links to online documentation/forums and organizational members. 

Existing options on the market, such as tools that improve code aesthetics or use AI to attempt automatic programming, simply do not alleviate the core problem for remote coders: helpless isolation while working at home. Unlike existing solutions, Onvu focuses on empowering virtual programmers through replicating the spontaneous exchange of ideas found in office environments and helping them engage other team members and the coding community at large. Furthermore, it does so through an IDE — centralizing work and minimizing the need for other communication platforms. 
​​​​​​​
Other stakeholders may include project managers of programming teams, design and marketing teams that programmers may forge cross-functional communications with, and occupations that have a high collaborative culture similar to computer programmers.
Design Process
 
User Research Insights

With survey responses that indicated which industries experienced virtual work burnout most, as well as interviews that gave us a deeper insight into why, we gathered a few key insights about programmers in particular:

1. They have a unique workflow. Coding is often done individually, but questions or issues come up along the way in projects, and they require quick turnaround times. This may be simple enough in an office setting, but much less so virtually. Users tend to waste time and energy waiting for answers and pushing through brain blocks in the meantime. 

2. They're prone to working overtime. Since programming is technical and creative, programmers' work-life balance can become thrown off if communication is lacking and project deliverables still need to be completed in a timely manner. This can happen regardless of team size.
 
3. They're not a monolith. Programmers at different experience levels or seniority will each experience burnout, but specific pain points vary, and a solution should exist to address all users' needs.

Synthesis

Our research insights informed two personas meant to represent potential users:

Celia is a 24-year-old programmer new to the industry who landed her first SWE job during the pandemic, so she's been working from home while living alone. Celia is the only person on her project and wants to make fast progress, but delayed virtual communication with her PM through Slack makes it impossible; she has no one else to ask because she hasn't met many coworkers since working virtually. The time lost waiting for responses makes her feel frustrated, stressed and lonely, and she has to put in longer hours to finish her work. By the end of each day, looking at her computer for so long and trying to resolve programming issues without help leaves her both physically and mentally drained for tomorrow. 

Fletcher is a 45-year-old senior software engineer working at a Fortune 500 tech company. His company has advised employees to work virtually, so Fletcher works at home with his family and pets. Fletcher was comfortable working on his project that began pre-pandemic, and he felt satisfied upon its completion during the pandemic. However, since being assigned new projects, Fletcher has found it unusually difficult to get caught up with his new team. Normally, in the office he could walk over to his colleagues to ask questions and get caught up to speed. The combination of back-to-back virtual meetings, lack of natural exercise, and dissociation from his team has led him to experience burnout more than ever before, especially with his responsibilities as a senior employee.
Product Requirements

Before a project-related detail is even exchanged, team members must feel comfortable enough to share their confusions and ask for clarification. That's why we aimed to instill a high sense of security among potential inquirers, especially those in entry-level positions. Users should have the clarity they need to stop aimlessly staring and start problem-solving. 

The timeliness and effectiveness of intra-team exchanges are of utmost relevance to our problem space. After all, they directly enable the efficient exchange of project-related details. Programmers need a solution that shortens the path to resolution while maximizing task-based output. Relatedly, there should be little to no latency in communication between collaborators.

We get that well-established, software-oriented companies covet their existing tech stacks. With that in mind, we wanted a point-solution that's easy to integrate into existing virtual workflows, from text editors to messaging platforms. We're not looking to overhaul the communication process or make it "clunkier"; instead, we'd like to take a focused approach to enhancing it. 

We're also open to providing customizable workflows that will empower programmers to navigate project inquiries in a style that works best for them. Company- and individual-adaptive customizations will help us accomplish just that.  

Overall, we want our product to cultivate a sense of confidence, fluidity, and empowerment with use. 

Concept Generation

As we wrapped up our ideation process, we were tasked with picking one concept out of the seventy-five we had previously generated. We came about Onvu by combining existing concepts to create one that was stronger overall. Let's break that down, from how our "brainwriting" session inspired the constituent concepts to how they ended up fitting together. 

Zoom Meeting Counter: A tool that displays how much time each meeting attendee has spent in meetings for the day. This awareness may encourage colleagues to value each other's time more.
OnTrack: A programming companion that detects how long someone's been working on a method and makes suggestions based on how much time has elapsed.

Status: A sensor that shows when people are working on a project, as well as what code they're on. It keeps a live feed of people's working status (e.g., what they're working on, if they're stuck).
Deja Vu: An AI-powered tool that can loop in similar methods, potential solutions, and simple bug fixes for those who are working on a method for an extended period of time.

Onvu (OnTrack + Deja Vu): An AI-powered IDE plug-in that detect how long someone's been working on a method and can make suggestions based on time elapsed. Suggestions include similar instances/methods, possible bug fixes based on previous resolutions, looping in a relevant colleague, or taking a break. What's displayed will vary with the number of suggestions elapsed and/or user-configured preferences. Unresolved issues are flagged for others to view.

Prototyping

Generating and testing our prototype helped us build a more robust understanding of the breakthroughs and challenges our prospective users may face when interacting with Onvu. In doing so, it helped us (1) iterate on our prototype to reflect quick, user-led changes and (2) better judge the usefulness and desirability of Onvu's various features.

Here's a summary of how remote students and professionals forge a path to resolution while programming, as well as how Onvu is best suited to help: 
Final Prototype

Onvu's final prototype takes the form of an IDE plugin that can seamlessly integrate into existing programming workflows. Upon setup, users are prompted for more proactive inline notifications or less intrusive status bar notifications, allowing for flexibility and customizability depending on different work styles. ​​​​​​​​​​​​​​
Onvu offers three kinds of notifications - smart helper (smart web resource lookup), ping teammate, and suggested breaks. The former two automatically appear when Onvu detects an extended period of time spent on one method or its referenced components, while the latter appears for an extended overall session.
Top-left: Onboarding screen for choosing notification types and display methods
Top-center: Example status bar notification for suggesting team member outreach.
Top-right: Expanded status bar window for pinging the relevant colleague.
Bottom-left: Example status bar notification for suggesting online resource reference.
Bottom-center: Expanded status bar window for accessing relevant online forums/documentation.
Bottom-right: Example inline popup for suggesting online resource reference.
Key Features
Onvu's features address the core user needs we identified in our design process, including faster communication, better work-life balance, and easier access to information:
 
1. Streamlined Collaboration. By existing within the IDE, Onvu streamlines rapid communication between a team or with a PM so issues that pop up during coding can be handled at a pace comparable to in-person communication. The "right person" should always be one click away.
 
2. Customizability. Onvu gives options for users at different points of their programming careers and with different levels of burnout. A new team member may want to know when they're going overtime, while a seasoned one may not. Onvu allows customizability with how a user wishes to see notifications (either inline or through a status bar), as well as the kinds of notifications they receive; the user can select whatever supports their coding process best.
 
3. Knowledge Empowerment. Onvu informs the user of what resources are available to them, either on the team (e.g., previous code contributions, relevant team members) or online (e.g., Stack Overflow). If they get stuck or need help, Onvu will put them on the fast track towards a resolution.

Onvu
Published: